package model

import (
	"time"

	"gorm.io/gorm"
)

// Role 角色
type Role struct {
	ID        uint           `json:"id" gorm:"primarykey"`
	Name      string         `json:"name" gorm:"size:50;not null;comment:角色名称"`             // 角色名称
	Code      string         `json:"code" gorm:"size:50;not null;comment:角色编码;uniqueIndex"` // 角色编码
	Status    int            `json:"status" gorm:"default:1;comment:状态(1:启用 2:禁用)"`         // 状态：1-启用 2-禁用
	Sort      int            `json:"sort" gorm:"default:0;comment:排序"`
	Users     []*User        `json:"users" gorm:"foreignKey:RoleID"`     // 用户列表
	Menus     []*Menu        `json:"menus" gorm:"many2many:role_menus;"` // 菜单列表
	CreatedAt time.Time      `json:"created_at"`
	UpdatedAt time.Time      `json:"updated_at"`
	DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
}

// TableName 表名
func (Role) TableName() string {
	return "roles"
}
